package com.ea.service;

import com.ea.domain.dto.AdminDTO;
import com.ea.domain.dto.LoginCreateDTO;
import com.ea.domain.dto.LoginDTO;
import com.ea.domain.dto.LoginUpdateDTO;
import com.ea.domain.entity.AdminInfo;
import com.ea.domain.query.AdminQueryDTO;
import com.github.pagehelper.PageInfo;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 管理员信息表 服务类
 * </p>
 *
 * @author 电器商城
 * @since 2022-11-29
 */
public interface IAdminInfoService {

    /**
     * 管理员登录
     * @param loginDTO
     */
    AdminDTO adminLoginIn(LoginDTO loginDTO);

    /**
     * 管理员登出
     * @param adminId
     */
    void adminLoginOut();

    /**
     * 获取管理员列表
     * @param queryDTO
     * @return
     */
    PageInfo<AdminInfo> getAdminInfoList(AdminQueryDTO queryDTO);

    /**
     * 创建管理员
     *
     * @param createDTO
     */
    Map<String, Object> createAdminInfo(LoginCreateDTO createDTO);

    /**
     * 修改管理员信息
     * @param updateDTO
     */
    void updateAdmin(LoginUpdateDTO updateDTO);

    /**
     * 注销管理员
     * @param adminId
     */
    void writeOffAdmin(Long adminId);

    /**
     * 修改密码
     * @param oldPassword
     * @param newPassword
     */
    void changePassword(  String oldPassword, String newPassword);

    /**
     * 重置账号密码
     * @param adminId
     * @return
     */
    Map<String, Object> resetPassword(Long adminId);

}
